﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

namespace KingGloryUsing
{
	int sunwukongId = 10;
}
void testUsing()
{
	int sunwukongId = 20;
	cout << sunwukongId << endl;//20

	//1.using声明；注意避免二义性问题；写了using声明后，下面这行代码说明，以后看到的sunwukongId是 KingGloryUsing
	//下的，但是编译器又有就近原则，所以就产生了二义性；
	//using KingGloryUsing::sunwukongId;
	cout << sunwukongId << endl;//20

}

namespace LOLUsing
{
	int sunwukongId = 40;
}
void testCompile()
{
	//2.using的编译指令；打开房间，但并不使用；这里是可以解决二义性，让程序跑起来；其实还是就近原则；
	//int sunwukongId = 30;
	//3.打开王者荣耀房间；
	using namespace KingGloryUsing;
	//4.打开LOL房间；
	using namespace LOLUsing;
	//cout << sunwukongId << endl;//30 --> 10
	//5.如果打开多个房间也要避免二义性问题；
	cout << LOLUsing::sunwukongId << endl;//40

}

//main235：using声明和编译命令
int main235()
{
	testUsing();
	testCompile();

	system("pause");
	return EXIT_SUCCESS;
}